ODPP coat of arms
Republic of Uganda

Office of the Director of Public Prosecutions

Brand & Process Reference — source material for the ODPP design system and the Complaints Management System (Django)
Article 120, Constitution of Uganda Toll Free 0800 112 300 Mon–Fri 08:00–17:00 dpp.go.ug
01 — Identity

The Office of the Director of Public Prosecutions is established under Article 120 of the Constitution of the Republic of Uganda. It is charged with the duty of instituting criminal proceedings in all Courts with competent jurisdiction except the court martial.

Vision
A Crime Free Society
Mission
To manage and prosecute criminal cases in courts of judicature in order to reduce the rate of crime in the country.
Goal
To streamline prosecutions for the delivery of criminal justice and reduction of crime.
DirectorMr. Lino AnguzuAssumed office 18 Nov 2025
PredecessorHon. Lady Justice Jane Frances AbodoFirst female DPP · 2020–2025
Case systemPROCAMISProsecution Case Management Information System
Complaints ownerInspections & Quality AssuranceMs. Winfred Ahimbisibwe, ADPP
02 — Colour, taken from the ODPP crest and dpp.go.ug
ODPP Blue
#1E4699 · primary
Deep Blue
#12306B · headers
Blue Tint
#EAF0FA · surfaces
Crest Gold
#FFD200 · accent
Crest Red
#D8232A · alert
Ink
#1A1A1A · text
Status colours for case & complaint states
Sanctioned DFI issued Closed / Nolle Latency breach Under perusal
Typography — Sprint stack, ODPP colour
Cormorant Garamond 600
Display: page titles, case headings, statements of offence
Nunito 400 / 600 / 800 — data, forms, tables
Body copy runs Nunito at 14px, 1.9 line height. Reference numbers, force numbers and CRB indices set in Nunito 600 with 0.04em tracking so SD Ref 14/26/08/2026 stays legible in dense tables.
03 — Addresses & contact
Head Office (current)
JLOS Towers, Tower 2
4th, 5th & 6th Floors
Plot 98–102, Katalima Road, Naguru
P.O. Box 1550, Kampala — Uganda
Head Office (legacy listing)
Plot 1 Pilkington Road
Workers' House, 12th / 11th / 9th Floors
P.O. Box 1550, Kampala — Uganda
Both addresses appear live on dpp.go.ug — confirm which is authoritative before print.
Public & press
Toll Free 0800 112 300
info@dpp.go.ug
Mon–Fri 08:00–17:00, Sat–Sun closed
Jacquelyn Akol-Okui — PRO, +256 741 244 147
Irene Nakimbugwe — Deputy PRO, +256 741 244 145
18 regional offices — the jurisdiction table the complaints system routes against
Region / office
Regional officer
RSA stations
RSP stations
{{ r.name }}
{{ r.address }}
{{ r.officer }}
{{ r.phone }}
{{ r.rsa }}
{{ r.rsp }}
Directorates & departments
Prosecutions Inspections & Quality Assurance Research & Training International Crimes (ICD) International Cooperation & Asset Recovery Asset Recovery Division General Case Work Gender, Children & Sexual Offences Land Crimes Anti-Corruption Witness Protection & Victim Empowerment Field Operations ICT (PROCAMIS) Management Support Services
04 — The paper chain: police desk to cause list
Twelve records across three institutions. Each card is a ledger the Django system must either replace or mirror. Reference case throughout: SD Ref 14/26/08/2026 → Jinja Road CRB 412/2026 → DPP/JNJ/412/2026 → NAK-00-CR-CO-0512-2026.
Phase 1
Jinja Road Police Station
Ingestion & telemetry. Records 1–4.
01 · Station Diary (SD)
Hardbound, pre-numbered chronological ledger on the front desk. Captures SD reference, exact timestamp, complainant identity (name, NIN, phone, residence, parish), raw unedited narrative, and the receiving Officer on Duty's signature, force number and rank.
Function: root timestamp of the legal event. No SD number means the incident does not exist in UPF records.
02 · Crime Report Book (CRB)
Opened at the CID desk once the OC Station rules the entry a cognizable offence. Captures the station-level annual CRB number, cross-reference to the SD entry, Penal Code Act classification (s.254 theft, s.305 false pretences), and the assigned Investigating Officer with CID desk.
Function: the CRB number spawns the physical case file jacket.
03 · Case File Jacket
The cardboard folder and its inside-page ledger. Contents: Form 3 complainant statement, Form 3 witness statements, draft charge sheet, Form 24 / PF3 medical examination, Form 18 exhibit register sheet with exhibit store number, Form 4 statement under charge and caution, and the IO's dispatch note / cover minute.
Failure mode: a detached page is lost permanently unless re-recorded or the witness re-interviewed.
04 · CID Dispatch / File Movement Register
Kept at the DCIO's office. Logs dispatch date and time, CRB number, target destination (ODPP Central Registry or RSA Nakawa / Kampala), and the name, force number and signature of the constable carrying the file bag.
Function: the only chain-of-custody artefact for the courier leg.
Phase 2
ODPP Central Registry
Ingestion & indexing. Records 5–6.
05 · Central Inward Register
Intake ledger at the registry counter. Date and time received, source station and division (Jinja Road / Kampala Metropolitan East), police CRB number, the ODPP file tracking number generated here (DPP/JNJ/412/2026), parties listed, and the receiving clerk's name and signature.
Function: the primary intake lock — moves the case from Police Investigation to Under Prosecutorial Perusal.
06 · File Allocation / Movement Sheet
Pinned inside the ODPP jacket cover. Assigned department or officer (Prosecutions, Inspectorate, a named Senior or Resident State Attorney), date assigned, expected perusal completion date, and the allocating clerk's signature.
Function: the only place an internal service-level benchmark is recorded.
Phase 3
Prosecutorial perusal
State machine. Records 7–8.
07 · Perusal Minute Sheet — three terminal states
State A · Sanctioned
Attorney agrees with the charges, signs and stamps the draft charge sheet. ODPP Sanction Stamp applied; entry made in the Sanctioned Files Register.
State B · Direct Further Investigation
Evidence incomplete or legally insufficient. Specific directives drafted ("obtain bank statements", "interview witness X") and the file logged in the DFI Outward Dispatch Register.
State C · Closed / Nolle Prosequi
Insufficient evidence, no criminal merit, or public-interest grounds. Logged in the Closed / Withdrawn Cases Register.
08 · Outward Dispatch Register
Target destination court (e.g. Nakawa Chief Magistrate Court) or return station, receiving courier's name and signature, and the date and time of exit from ODPP premises.
Phase 4
Court ingestion
Records 9–10.
09 · Court Criminal Register
Held by the Chief Magistrate / Grade I registry. Court case number, cross-references binding the CRB and ODPP file numbers, presiding judicial officer, plea date, and remand or bail status.
10 · Daily Cause List
Public schedule posted outside the courtroom: case number, parties (Uganda vs. Accused), offence code, and stage of proceeding — plea, hearing, mention, defence, ruling, judgment.
05 — The complaints layer: dual taxonomy
Everything the Django build turns on. A complaint arriving at the Head of Complaints splits into two record types with different storage, routing and permission rules.
ODPP Central Complaints Intake
Type A · Officer conduct
Complaint against an RSA or IO
RecordConfidential Internal Affairs File — IAF reference number.
ScopeCorruption, solicitation, extortion, evidence tampering, professional misconduct.
RoutingIsolated disciplinary registry, sanitised from the RSA. Internal Affairs / Inspections & Quality Assurance only.
Hard permission rule: the accused officer must have zero read access. Object-level permissions, not view-level — witness intimidation and record destruction are the threat model.
Type B · Process / case delay
Complaint against file status
RecordCase Latency Inquiry Sheet, linked to CRB and ODPP identifiers.
ScopeFiles lost in transit, perusal sitting over 14 days without action, sanction decisions never communicated to the victim.
RoutingRegional Inspectorate / RSA mandated status audit.
Hard data rule: foreign keys to the CRB number and ODPP reference; the time delta between date ingested at Central Registry and today drives automated latency alerts for executive management.
06 — Systemic vulnerabilities the build must answer
01
Chain-of-custody breakpoints
Every hop between the station and the registry is a human courier carrying paper. A delay, loss or deliberate withholding at any transport node destroys state visibility entirely.
02
Zero ingest telemetry
Until the folder is physically entered in the Central Inward Register, ODPP headquarters has no operational awareness that CRB 412/2026 exists at all.
03
Index disconnect
Reconciling an SD number, a CRB number, an ODPP file number and a court case number means manually flipping four paper ledgers held by three separate institutions.
What that implies for the Django schema
Case identityOne canonical Case object carrying four nullable, uniquely-indexed reference fields — SD, CRB, ODPP, Court — so a case can be created from any institution's entry point and reconciled later.
Custody eventsAn append-only FileMovement model (from_location, to_location, courier, dispatched_at, received_at) instead of a status column. Unreceived dispatches after N days are the loss signal.
Perusal decisionsA PerusalMinute model with choices SANCTIONED / DFI / CLOSED, the attorney, the directive text, and the register it was written to. Never overwrite — new minute per decision.
ComplaintsTwo concrete models over a shared abstract base: ConductComplaint (restricted queryset, audit log on every read) and ProcessComplaint (FK to Case, computed latency property, alert threshold 14 days).
JurisdictionRegion → RSA station → RSP station hierarchy seeded from the 18-office table above; complaint routing derives the responsible Regional Officer from the station on the case.
Sources: dpp.go.ug (home, contact, directorates), ODPP crest artwork, and the supplied police-to-ODPP process brief. Compiled 26 August 2026
Built by Nova Generation
Powered by Sprint UG — Live Unlimited